home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / guilib3 / inc / gst.h < prev    next >
C/C++ Source or Header  |  1993-11-30  |  4KB  |  129 lines

  1. /*    :*****************************************************************
  2.     :    "gst.h"    :    system“Pride”文字列入力・ライブラリ
  3.     :*****************************************************************
  4. */
  5. #ifndef    _GST_H
  6. #define    _GST_H
  7.  
  8. #ifndef    _STRUNDO
  9. #    define    _STRUNDO    /* UNDO システムを使用    */
  10. #endif
  11.  
  12. #ifndef    _KYB_H
  13. #    include    <kyb.h>
  14. #endif
  15. #ifndef    _EVENT_H
  16. #    include    <event.h>
  17. #endif
  18. #ifndef    _STRUNDO_H
  19. #    include    <strundo.h>
  20. #endif
  21.  
  22. typedef    struct    _histbuf_t    /* ヒストリ用バッファ構造体    */
  23. {
  24.     struct    _histbuf_t    *next;
  25.     struct    _histbuf_t    *prev;
  26.     size_t                len;
  27.     char                p[1];
  28. } HISTBUF_T;
  29.  
  30.  
  31. typedef    struct                /* ヒストリシステム構造体    */
  32. {
  33.     SHORT        hisLin;        /* 何行保持しておくか        */
  34.     SHORT        crtNo;        /* 現在何行保持しているか    */
  35.     HISTBUF_T    *top;        /* 先頭ポインタ                */
  36.     HISTBUF_T    *crt;        /* 現在ポインタ                */
  37.     HISTBUF_T    *last;        /* 最終ポンイタ                */
  38.     HISTBUF_T    *org;        /* オリジナル文字列            */
  39. } HIST_T;
  40.  
  41.  
  42. typedef    struct
  43. {
  44.     int            page;        /* 書き込みページ            */
  45.     POINT        pos;        /* 表示位置                    */
  46.     EVT_T        *basEvt;    /* ベースイベント            */
  47.     EVT_T        *evt;        /* イベント                    */
  48.  
  49.     UCHAR        fnt;        /* フォントサイズ(8,12,16)    */
  50.     UCHAR        fntype;        /* フォントタイプ            */
  51.     char        dspIgnore;    /* 表示禁止                    */
  52.     char        _dym_1;
  53.     UCHAR        fntX, fntY;    /* フォント                    */
  54.     UCHAR        spcX,spcY;    /* 字隔,行間                */
  55.  
  56.     COLOR        strCol;        /* 文字色                    */
  57.     COLOR        bacCol;        /* 背景色                    */
  58.     COLOR        guiCol;        /* ガイドマーク色            */
  59.     COLOR        curCol;        /* カーソル色                */
  60.  
  61.     size_t        fldSiz;        /* 表示文字列の長さ            */
  62.     size_t        maxLen;        /* 最大入力文字数            */
  63.     size_t        len;        /* 入力文字数                */
  64.     size_t        curPos;        /* カーソル位置                */
  65.     size_t        dspPos;        /* 表示先頭位置                */
  66.     size_t        selPos;        /* 選択先頭位置                */
  67.  
  68.     char        selFlag;    /* 選択中??                    */
  69.     char        curFlag;    /* カーソル表示チェック用    */
  70.     char        insFlag;    /* 挿入モード                */
  71.     char        editFlag;    /* 編集フラグ                */
  72.  
  73.     char        *orgStr;    /* オリジナルストリング        */
  74.     char        *s;            /* 入力文字バッファ            */
  75.     char        *oneHis;    /* 1行ヒストリバッファ        */
  76.     char        *fldBuf;    /* 出力用ワーク                */
  77.  
  78.     HIST_T        *hist;        /* ヒストリシステム            */
  79.     UNDOSYS        *undoSys;    /* UNDOシステム                */
  80.  
  81.     EVTKEYTBL_T    *keyTbl;    /* カスタマイズ用バッファ    */
  82.     int            evtRet;
  83. } GST_T;
  84. #define    GST_WORK    GST_T
  85.  
  86. /*    "gst.c"        ----------------------------------------------------*/
  87. #define    GSTT_END    (-1)    /* 終了    */
  88. #define    GSTT_CONT    (-2)    /* 継続    */
  89. #define    GSTT_CANCEL    (-3)    /* 中断    */
  90.  
  91. extern    int        (*GstSideWorkFunc)(void);
  92.  
  93. extern    GST_T    *GST_init( int x0, int y0, int fldSiz, int maxLen, int fnt,
  94.                       char *s, HIST_T *histSys );
  95. extern    void    GST_end( GST_T *gst );
  96. extern    void    GST_flush( GST_T *gst );
  97. extern    void    GST_setStr( GST_T *gst, int len, char *buf );
  98. extern    void    GST_delete( GST_T *gst, SHORT pos, SHORT len );
  99. extern    int        GST_del_line( GST_T *gst );
  100. extern    void    GST_cursor( GST_T *gst, int dsp );
  101. extern    int        GST_edit( GST_T *gst, UINT ec );
  102. extern    int        GST_send( GST_T *gst, int sLen, KYBUF *kybuf );
  103. extern    void    GST_mosEvtSet( GST_T *gst );
  104. extern    void    GST_mosEvtReset( GST_T *gst );
  105. extern    void    GST_miSet( GST_T *gst, char *s );
  106. extern    int        GST_gets( GST_T *gst, char *s, EVT_T *exitEvt );
  107.  
  108. /*    "gst_cbuf.c"    ------------------------------------------------*/
  109. extern    char    *CutBuf;        /* カットバッファ        */
  110. extern    size_t    CutSize;        /* カットバッファサイズ    */
  111.  
  112. extern    int        CUTBUF_copy(char *buf, size_t len);
  113. extern    size_t    CUTBUF_paste( char *buf, size_t len );
  114. extern    void    CUTBUF_clear(void);
  115.  
  116. /*    "gsthis.c"        ------------------------------------------------*/
  117. extern    HIST_T    SysHist;
  118.  
  119. extern    HIST_T        *HIST_allocWork( int n );
  120. extern    void        HIST_freeWork( HIST_T *hist );
  121. extern    int            HIST_setOrg( HIST_T *hist, char *buf, size_t len );
  122. extern    int            HIST_set( HIST_T *hist, char *buf, size_t len );
  123. extern    void        HIST_reset( HIST_T *hist );
  124. extern    HISTBUF_T    *HIST_prev( HIST_T *hist );
  125. extern    HISTBUF_T    *HIST_next( HIST_T *hist );
  126.  
  127.  
  128. #endif
  129.